import 'package:flutter_benchu/utils/commonPkg.dart';

class UserServices {
  // 获取渲染页面必要的数据
  asyncInitData(BuildContext context) async {

    // 设置用户信息
    getUserInfo(context);

    // 获取设备uuid号
    inituuid();
    
    //并发执行
    await Future.wait<void>([
      initToken(context), //初始化 token
      initEncrypt(context), //初始化 加密
    ]).timeout(
      5.seconds, //最多等待5秒
      onTimeout: () => Future.value(),
    );
    Log.v("数据初始化完毕");
  }

  //初始化 userInfo
  getUserInfo(BuildContext context, {Map params}) async {
    await userApi.getUserData();
    AppNotifier appNotifier = Provider.of<AppNotifier>(context, listen: false);
    appNotifier.user = {"name": '小明', "age": '25'};
    appNotifier.notifyListeners();
  }

  //初始化 tokne
  initToken(BuildContext context, {Map params}) async {
    await userApi.getUserData();
    AppNotifier appNotifier = Provider.of<AppNotifier>(context, listen: false);
  }

  //初始化 tokne
  inituuid() async {
    if(cacheModel.uuid.isNotEmpty) return 
    cacheModel.uuid = await getDeviceUUID();
    cacheModel.setLoaclCache();
  }

  //初始化 加密
  initEncrypt(BuildContext context, {Map params}) async {}
}

final UserServices userServices = UserServices();
